package top.tangyh.lamp.care.service;

import top.tangyh.basic.base.service.SuperService;
import top.tangyh.lamp.care.entity.BTimePlan;
import top.tangyh.lamp.care.vo.query.WorkPlanDetailQueryVO;
import top.tangyh.lamp.care.vo.result.TimePointOutVO;
import top.tangyh.lamp.care.vo.result.WorkPlanDetailOutVO;
import top.tangyh.lamp.care.vo.save.BTimePlanSaveVO;
import top.tangyh.lamp.care.vo.save.TimePlanInVO;
import top.tangyh.lamp.care.vo.update.BTimePlanUpdateVO;
import top.tangyh.lamp.care.vo.result.BTimePlanResultVO;
import top.tangyh.lamp.care.vo.query.BTimePlanPageQuery;

import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;


/**
 * <p>
 * 业务接口
 * 病人时间计划表
 * </p>
 *
 * @author zqb
 * @date 2024-07-18 15:15:54
 * @create [2024-07-18 15:15:54] [zqb] [代码生成器生成]
 */
public interface BTimePlanService extends SuperService<Long, BTimePlan> {
    /**
     * 获得排班指定模块，指定病人的所有时间点
     *
     * @param moduleId       横块编码，不能为空
     * @param roleId         角色id
     * @param patientIdent   病人识别号
     * @param hospitalNumber 住院号
     * @param startTime      开始时间，不能为空
     * @param endTime        结束时间，不能谡空
     * @return
     */
    LinkedHashSet<TimePointOutVO> getAllTimePoitByPt(String moduleId, Long roleId, String patientIdent, String hospitalNumber, Long startTime, Long endTime);

    Set<Long> getTimePoitSet(String moduleId, Long roleId, Long startTime, Long endTime, Long currTime);


    Set<Long> getTimePoitSet(String moduleId, Long roleId, Long startTime, Long endTime);

    boolean deleteTimePlan(Long id);

    List<Long> add(TimePlanInVO inVO);

}


